const express = require('express');
const app = express();

const jwt = require('express-jwt');

//jwt() 解密token,获取token中的用户id,赋值给req.user，正常的next()
//unless() 不需要认证的接口
app.use(jwt(
  { secret: 'gjhfjkdsjfhdcvfgq3fdsf', //加密时候用的字符串
    algorithms: ['HS256'] //加密时候用的加密算法
  }).unless({path: ['/api/login', '/api/reguser']}));//除了这两个接口，其他接口都需要认真

//解析请求体
app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

let login = require('./routers/login');
app.use('/api', login);

app.use('/my/user', require('./routers/user'));

app.use('/my/article', require('./routers/article'));

//错误处理中间件,处理token
app.use(function (err, req, res, next) {
  if (err.name === 'UnauthorizedError') {
    res.status(401).send({'status': 1, message: '身份认证失败'});
  }
});

app.listen(3000, () => {
  console.log('大事件接口项目启动了');
}) 